
package ch.hearc.coursJava.kitBase.tools;

import java.io.File;

public class DeleterTools
	{

	/*------------------------------------------------------------------*\
	|*							Methodes Public							*|
	\*------------------------------------------------------------------*/
	/**
	 * Efface fichier ou folder (recursivement)
	 */
	public static boolean delete1(File file)//file peut etre un fichier ou un folder
		{
		//difficulte:
		//delete de la classe File, efface un folder que si celui ci est vide
		if (file.isFile())
			{
			return file.delete();
			}
		else if (file.isDirectory())
			{
			File[] listF = file.listFiles();
			boolean isOk = true;
			for(File fileI:listF)
				{
				isOk &= delete1(fileI);
				}
			isOk &= file.delete();
			return isOk;
			}
		else
			{
			return true;
			}
		}
	//TODO ameliorer
	public static boolean delete2(File file)
		{
		if (file.isDirectory())
			{
			File[] listF = file.listFiles();
			for(File fileI:listF)
				{
				delete2(fileI);
				}
			}
		file.delete();
		return true;//return temporaire (pas correct)
		}

	//Ma version
	public static boolean delete(File file) //File peut-etre un fichier ou un folder
		{
		//Difficulte :
		//Delete de la classe File efface un folder seulement si celui-ci est vide
		boolean isOk = true;
		if (file.isDirectory())
			{
			File[] listFiles = file.listFiles();
			for(File fileToDelete:listFiles)
				{
				if (!delete(fileToDelete))
					{
					isOk = false;
					}
				}
			}

		if (!isOk)
			{
			//file.delete(); Inutile, car si le folder n'est pas vide il ne pourra pas etre supprimer...
			return false;
			}
		else
			{
			return file.delete();
			}
		}
	/*------------------------------------------------------------------*\
	|*							Methodes Private						*|
	\*------------------------------------------------------------------*/

	}
